<?php
/**
 * Created by PhpStorm.
 * User: xiong <1099446868@qq.com>
 * DateTime: 2018/10/31
 * TIME: 0:08
 */

namespace app\index\controller;

use think\captcha\Captcha;
use think\Controller;
use think\Db;
use think\facade\Request;
use think\facade\Session;

class BaseController extends Controller {

    public function __construct() {
        parent::__construct();

        if ($_SERVER['HTTP_HOST'] == 'xiaojuan.fun') {

            $this->redirect("http://www.xiaojuan.fun", 301);
        }

        //$this->isPhone();
        $this->visitor();
    }

    //register验证码
    public function verify() {
        $captcha = new Captcha();
        $captcha->fontSize = 18;
        $captcha->length = 4;
        $captcha->imageH = 40;
        $captcha->imageW = 120;
        $captcha->useCurve = false;
        return $captcha->entry();
    }

    //验证是否登录
    public function islogin() {
        if (!Session::has('username')) {
            return $this->redirect('login');
        }
        return true;
    }

    //记录访客浏览记录
    public function visitor() {
        $request = Request::instance();
        //exit($controller .'---'. $action .'----'. $url);
        $ip = get_client_ip();
        //echo $ip;exit;
        if ($ip != '220.112.127.174') {
            $data = [
                'ip'     => $ip,
                'agent'  => getagent(),
                'handle' => $request->controller() . '/' . $request->action(),
                'url'    => $request->url(),
                'time'   => date('Y-m-d H:i:s', time())
            ];
            Db::name('visitor')->insert($data);
        }
    }

    public function _empty() {
        //$request = Request::instance();
        //echo $request->controller() . '/' . $request->action();
        return '页面丢失~';
    }



    public function isPhone() {
        //php判断客户端是否为手机
        $agent = $_SERVER['HTTP_USER_AGENT'];
        if (strpos($agent, "NetFront") || strpos($agent, "iPhone") ||
            strpos($agent, "MIDP-2.0") || strpos($agent, "Opera Mini") ||
            strpos($agent, "UCWEB") || strpos($agent, "Android") ||
            strpos($agent, "Windows CE") || strpos($agent, "SymbianOS")) {
            return true;
        }

        return false;
    }

    public function ismobile() {
        // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
            return true;
        //此条摘自TPM智能切换模板引擎，适合TPM开发
        if (isset ($_SERVER['HTTP_CLIENT']) && 'PhoneClient' == $_SERVER['HTTP_CLIENT'])
            return true;
        //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
        if (isset ($_SERVER['HTTP_VIA']))
            //找不到为flase,否则为true
            return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
        //判断手机发送的客户端标志,兼容性有待提高
        if (isset ($_SERVER['HTTP_USER_AGENT'])) {
            $clientkeywords = array(
                'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile'
            );
            //从HTTP_USER_AGENT中查找手机浏览器的关键字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return true;
            }
        }
        //协议法，因为有可能不准确，放到最后判断
        if (isset ($_SERVER['HTTP_ACCEPT'])) {
            // 如果只支持wml并且不支持html那一定是移动设备
            // 如果支持wml和html但是wml在html之前则是移动设备
            if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
                return true;
            }
        }
        return false;
    }

}